package net.xdclass.manager;

import net.xdclass.model.ProductOrderDO;

import java.util.Map;

/**
 * @author Administrator
 * @description
 * @since 2023-06-26 20:52
 */
public interface ProductOrderManager {

    /**
     * 新增
     *
     * @param productOrderDO
     * @return
     */
    int add(ProductOrderDO productOrderDO);

    /**
     * 通过订单号和账号进行查询
     *
     * @param outTradeNo
     * @param accountNo
     * @return
     */
    ProductOrderDO findByOutTradeNoAndAccountNo(String outTradeNo, Long accountNo);

    int updateOrderPayState(String outTradeNo,
                            Long accountNo,
                            String newState,
                            String oldState);

    /**
     * 分页查看订单列表
     * @param page
     * @param size
     * @param accountNo
     * @param state
     * @return
     */
    Map<String, Object> page(int page, int size, Long accountNo, String state);

    /**
     * 删除订单
     * @param productOrderId
     * @param accountNo
     * @return
     */
    int del(Long productOrderId, Long accountNo);

}
